home *** CD-ROM | disk | FTP | other *** search
Wrap
'************************************************************************** '* CBIRUN Demo Product Setup '************************************************************************** ''$DEFINE DEBUG ''Define for script development/debugging ''$DEFINE DISKSIZE ''Define if you want to check for disk space '$INCLUDE 'setupapi.inc' '$INCLUDE 'msdetect.inc' ''Dialog ID's CONST WELCOME = 100 CONST ASKQUIT = 200 CONST DESTPATH = 300 CONST EXITFAILURE = 400 CONST EXITQUIT = 600 CONST EXITSUCCESS = 700 CONST OPTIONS = 800 CONST APPHELP = 900 CONST DRIVESELECT = 1100 CONST BADPATH = 6400 ''Bitmap ID CONST LOGO = 1 GLOBAL DEST$ ''Default destination directory. GLOBAL OPTCUR$ 'Null for now GLOBAL WINDRIVE$ 'Used in size test GLOBAL SrcDir$ GLOBAL WinDir$ GLOBAL WinSysDir$ GLOBAL WantedDiskSize& ''Used for disk size test DECLARE SUB Install DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING ''DECLARE FUNCTION DoProtect LIB "PROTECT.DLL" (szDisk$) AS INTEGER INIT: CUIDLL$ = "mscuistf.dll" ''Custom user interface dll HELPPROC$ = "FHelpDlgProc" ''Help dialog procedure SrcDir$ = GetSymbolValue("STF_SRCDIR") WinDir$ = GetWindowsDir() WinSysDir$ = GetWindowsSysDir() MajorVer% = GetWindowsMajorVersion() MinorVer% = GetWindowsMinorVersion() IF MajorVer% < 3 OR (MajorVer% = 3 AND MinorVer% < 10) THEN i% = DoMsgBox("Microsoft Windows version 3.10 or greater is required for this software. Please upgrade your version of Windows.", "Installation Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND) END END IF SetBitmap CUIDLL$, LOGO SetTitle "CBI Tutorial Install ... Created with CBIquick" szInf$ = GetSymbolValue("STF_SRCINFPATH") IF szInf$ = "" THEN szInf$ = GetSymbolValue("STF_CWDDIR") + "DEMORUN.INF" END IF ReadInfFile szInf$ OPTCUR$ = "1" DEST$ = "C:\CBIRUN" '$IFDEF DEBUG i% = SetSizeCheckMode(scmOnIgnore) '' could use scmOff; def = scmOnFatal WinDrive$ = MID$(GetWindowsDir, 1, 1) IF IsDriveValid(WinDrive$) = 0 THEN i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK) GOTO QUIT END IF '$ENDIF ''DEBUG WELCOME: GETPATH: SetSymbolValue "EditTextIn", DEST$ SetSymbolValue "EditFocus", "END" GETPATHL1: sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$) DEST$ = GetSymbolValue("EditTextOut") IF sz$ = "CONTINUE" THEN ''Not checking writeability of network drives yet ''IF IsDirWritable(DEST$) = 0 THEN '' GOSUB BADPATH '' GOTO GETPATHL1 ''END IF UIPop 1 ELSEIF sz$ = "REACTIVATE" THEN GOTO GETPATHL1 ELSEIF sz$ = "BACK" THEN UIPop 1 GOTO WELCOME ELSE GOSUB ASKQUIT GOTO WELCOME END IF ''------------------------------------------------------------------ Install ''------------------------------------------------------------------ QUIT: ON ERROR GOTO ERRQUIT IF ERR = 0 THEN dlg% = EXITSUCCESS ELSEIF ERR = STFQUIT THEN dlg% = EXITQUIT ELSE dlg% = EXITFAILURE END IF QUITL1: sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "") IF sz$ = "REACTIVATE" THEN GOTO QUITL1 END IF UIPop 1 END ERRQUIT: i% = DoMsgBox("Setup sources were corrupted, call (508) 263-3030 !", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND) END BADPATH: sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "") IF sz$ = "REACTIVATE" THEN GOTO BADPATH END IF UIPop 1 RETURN ASKQUIT: sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "") IF sz$ = "EXIT" THEN UIPopAll ERROR STFQUIT ELSEIF sz$ = "REACTIVATE" THEN GOTO ASKQUIT ELSE UIPop 1 END IF RETURN '********************************************************************** '** Install '** '** Purpose: '** Builds the copy list and performs all installation operations. '** Arguments: '** none. '** Returns: '** none. '************************************************************************* SUB Install STATIC ''Save a copy of previous menu (if present)------------------------ DEST_MNU$ = DEST$ + "\DEMORUN.MNU" OLD_MNU$ = DEST$ + "\OLD.MNU" i% = DoesFileExist(DEST_MNU$, femExists) IF i% = 1 THEN CopyFile DEST_MNU$, OLD_MNU$, cmoNone, 0 END IF '$IFDEF DISKSIZE ''If disk size to be checked ''Check the disk space - TEST THIS ON NETWORK DRIVES----------------- WINDRIVE$ = MID$(DEST$, 1, 1) WantedDiskSize&=5800000 '$INCLUDE 'DISKSIZE.INC' DiskSize&=GetFreeSpaceForDrive(WINDRIVE$) IF WantedDiskSize& > DiskSize& THEN i% = DoMsgBox("Not enough free disk space. Need 1.8 MB to install + 4 MB additional to run CBIquick tutorial.", "Install Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND) END END IF '$ENDIF ''DISKSIZE SrcDir$ = GetSymbolValue("STF_SRCDIR") CreateDir DEST$, cmoNone OpenLogFile MakePath(DEST$, "LOGFILE.OUT"), 0 WriteToLogFile "" WriteToLogFile " User chose as destination directory: '" + DEST$ + "'" WriteToLogFile " Installing DISK 1 to: '" + DEST$ + "'" WriteToLogFile "" AddSectionFilesToCopyList "Files1", SrcDir$, DEST$ ''Add Video-For-Windows Run-Time files............................. AddSectionFilesToCopyList "VFW Runtime", SrcDir$, WinSysDir$ AddSectionFilesToCopyList "AVICodecs", SrcDir$, WinSysDir$ ''Copy the files, initialize display......................................... CopyFilesInCopyList ''Update WIN.INI and SYSTEM.INI...................................... CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MSVC", "msvidc.drv", cmoOverwrite CreateIniKeyValue "WIN.INI", "mci extensions", "avi", "AVIVideo", cmoOverwrite CreateIniKeyValue WinDir$ + "system.ini", "mci", "AVIVideo", "mciavi.drv", cmoOverwrite ''no MPLAYER Run ("regedit.exe /s " + MakePath(WinDir$, "mplayer.reg")) Run ("profdisp") ''ini$ = MakePath(DEST$, "DEMORUN.INI") ''CreateIniKeyValue "WIN.INI", "DEMORUN Demo Run-Time For CBIquick", "Option", OPTCUR$, cmoNone ''CreateIniKeyValue ini$, "Section 1", "Key 1", "Value 1" , cmoNone ''CreateIniKeyValue ini$, "Section 2", "Key 2", "Value 2" , cmoNone ''CreateIniKeyValue ini$, "Section 3", "Key 3", "Value 3" , cmoNone CreateProgmanGroup "CBIrun", "CBIRUN.GRP", cmoNone ShowProgmanGroup "CBIrun", 1, cmoNone ''CreateProgmanItem "CBIrun", "CBIrun", MakePath(DEST$,"CBIRUN.exe"),"", cmoOverwrite ''Append old .MNU menu to new i% = DoesFileExist(OLD_MNU$, femExists) IF i% = 1 THEN CopyFile OLD_MNU$, DEST_MNU$, cmoNone, 1 END IF ''Get the icon label def created by DQ in Create Disk '$INCLUDE 'DEMOLABL.INC' ''Initializing definitions for DISK1-DISK20, up to 20 install disks DISK1$ = "" DISK2$ = "" DISK3$ = "" DISK4$ = "" DISK5$ = "" DISK6$ = "" DISK7$ = "" DISK8$ = "" DISK9$ = "" DISK10$ = "" DISK11$ = "" DISK12$ = "" DISK13$ = "" DISK14$ = "" DISK15$ = "" DISK16$ = "" DISK17$ = "" DISK18$ = "" DISK19$ = "" DISK20$ = "" ''Now use the DISKn variables set by DQ Create Disk to flag disks used ''in this course install. Example DISK3 = "1" to flag disk 1 used. '$INCLUDE 'DISKNUM.INC' IF DISK2$ = "1" THEN i% = DoMsgBox("Insert Disk # 2 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK) ClearCopyList AddSectionFilesToCopyList "Files2", SrcDir$, DEST$ CopyFilesInCopyList END IF IF DISK3$ = "1" THEN i% = DoMsgBox("Insert Disk # 3 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK) ClearCopyList AddSectionFilesToCopyList "Files3", SrcDir$, DEST$ CopyFilesInCopyList END IF IF DISK4$ = "1" THEN i% = DoMsgBox("Insert Disk # 4 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK) ClearCopyList AddSectionFilesToCopyList "Files4", SrcDir$, DEST$ CopyFilesInCopyList END IF IF DISK5$ = "1" THEN i% = DoMsgBox("Insert Disk # 5 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK) ClearCopyList AddSectionFilesToCopyList "Files5", SrcDir$, DEST$ CopyFilesInCopyList END IF IF DISK6$ = "1" THEN i% = DoMsgBox("Insert Disk # 6 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK) ClearCopyList AddSectionFilesToCopyList "Files6", SrcDir$, DEST$ CopyFilesInCopyList END IF IF DISK7$ = "1" THEN i% = DoMsgBox("Insert Disk # 7 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK) ClearCopyList AddSectionFilesToCopyList "Files7", SrcDir$, DEST$ CopyFilesInCopyList END IF IF DISK8$ = "1" THEN i% = DoMsgBox("Insert Disk # 8 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK) ClearCopyList AddSectionFilesToCopyList "Files8", SrcDir$, DEST$ CopyFilesInCopyList END IF IF DISK9$ = "1" THEN i% = DoMsgBox("Insert Disk # 9 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK) ClearCopyList AddSectionFilesToCopyList "Files9", SrcDir$, DEST$ CopyFilesInCopyList END IF IF DISK10$ = "1" THEN i% = DoMsgBox("Insert Disk # 10 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK) ClearCopyList AddSectionFilesToCopyList "Files10", SrcDir$, DEST$ CopyFilesInCopyList END IF IF DISK11$ = "1" THEN i% = DoMsgBox("Insert Disk # 11 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK) ClearCopyList AddSectionFilesToCopyList "Files11", SrcDir$, DEST$ CopyFilesInCopyList END IF IF DISK12$ = "1" THEN i% = DoMsgBox("Insert Disk # 12 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK) ClearCopyList AddSectionFilesToCopyList "Files12", SrcDir$, DEST$ CopyFilesInCopyList END IF IF DISK13$ = "1" THEN i% = DoMsgBox("Insert Disk # 13 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK) ClearCopyList AddSectionFilesToCopyList "Files13", SrcDir$, DEST$ CopyFilesInCopyList END IF IF DISK14$ = "1" THEN i% = DoMsgBox("Insert Disk # 14 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK) ClearCopyList AddSectionFilesToCopyList "Files14", SrcDir$, DEST$ CopyFilesInCopyList END IF IF DISK15$ = "1" THEN i% = DoMsgBox("Insert Disk # 15 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK) ClearCopyList AddSectionFilesToCopyList "Files15", SrcDir$, DEST$ CopyFilesInCopyList END IF IF DISK16$ = "1" THEN i% = DoMsgBox("Insert Disk # 16 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK) ClearCopyList AddSectionFilesToCopyList "Files16", SrcDir$, DEST$ CopyFilesInCopyList END IF IF DISK17$ = "1" THEN i% = DoMsgBox("Insert Disk # 17 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK) ClearCopyList AddSectionFilesToCopyList "Files17", SrcDir$, DEST$ CopyFilesInCopyList END IF IF DISK18$ = "1" THEN i% = DoMsgBox("Insert Disk # 18 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK) ClearCopyList AddSectionFilesToCopyList "Files18", SrcDir$, DEST$ CopyFilesInCopyList END IF IF DISK19$ = "1" THEN i% = DoMsgBox("Insert Disk # 19 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK) ClearCopyList AddSectionFilesToCopyList "Files19", SrcDir$, DEST$ CopyFilesInCopyList END IF IF DISK20$ = "1" THEN i% = DoMsgBox("Insert Disk # 20 now...", "Load Next Disk", MB_TASKMODAL+MB_ICONHAND+MB_OK) ClearCopyList AddSectionFilesToCopyList "Files20", SrcDir$, DEST$ CopyFilesInCopyList END IF CloseLogFile END SUB '************************************************************************ '** MakePath '** '** Purpose: '** Appends a file name to the end of a directory path, '** inserting a backslash character as needed. '** Arguments: '** szDir$ - full directory path (with optional ending "\") '** szFile$ - filename to append to directory '** Returns: '** Resulting fully qualified path name. '************************************************************************* FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING IF szDir$ = "" THEN MakePath = szFile$ ELSEIF szFile$ = "" THEN MakePath = szDir$ ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN MakePath = szDir$ + szFile$ ELSE MakePath = szDir$ + "\" + szFile$ END IF END FUNCTION